#pragma once
#include"RedBlackTree.h"

namespace bit
{
	template<class K>
	class set
	{

	public:

		struct setKeyOfT
		{
			const K& operator()(const K& key)
			{
				return key;
			}
		};
		typedef typename RBTree<K,const K, setKeyOfT>::Ierator ierator;
		typedef typename RBTree<K,const K, setKeyOfT>::ConstIerator const_ierator;


		ierator begin()
		{
			return _t.Begin();
		}
		ierator end()
		{
			return _t.End();
		}
		const_ierator begin()const
		{
			return _t.Begin();
		}
		const_ierator end()const
		{
			return _t.End();
		}


		pair<ierator,bool> insert(K& val)
		{
			return _t.Insert(val);
		}

		
	private:

		RBTree<K,const K, setKeyOfT> _t;

	};


	

}